<template>
  <view class="OrderCancellation">
    <view class="header">
      <image mode="aspectFit" :src="`${$VUE_APP_RESOURCES_URL}/images/writeOffBg.jpg`" @click="openQRCode" />
    </view>
    <view class="whiteBg">
      <view class="input">
        <input type="number" placeholder="0" v-model="verify_code" />
      </view>
      <view class="bnt" @click="storeCancellation">立即核销</view>
      <view class="bnt" v-if="$deviceType !== 'weixin'" @click="openQRCode">扫码核销</view>
    </view>
    <!-- #ifndef H5 -->
    <!-- <view class="scan" v-if="iswechat">
			<image :src="`${$VUE_APP_RESOURCES_URL}/images/scan.gif`" @click="openQRCode" />
		</view> -->
    <!-- #endif -->
    <WriteOff :iShidden="iShidden" :orderInfo="orderInfo" @cancel="cancel" @confirm="confirm"></WriteOff>
  </view>
</template>

<script>
import WriteOff from '@/components/WriteOff'
import { isWeixin } from '@/utils'
// import { wechatEvevt } from "@/libs/wechat";
import { orderVerific } from '@/api/order'
const NAME = 'OrderCancellation'

export default {
  name: NAME,
  components: {
    WriteOff,
  },
  props: {},
  data: function() {
    return {
      iShidden: true,
      orderInfo: {},
      verify_code: '',
    }
  },
  mounted: function() {},
  methods: {
    cancel: function(res) {
      this.iShidden = res
    },
    confirm: function() {
      orderVerific(this.verify_code, 1)
        .then(res => {
          this.iShidden = true
          this.verify_code = ''
          uni.showToast({
            title: res.msg,
            icon: 'none',
            duration: 2000,
          })
        })
        .catch(err => {
          uni.showToast({
            title: err.msg || err.response.data.msg || err.response.data.message,
            icon: 'none',
            duration: 2000,
          })
        })
    },
    storeCancellation: function() {
      let ref = /[0-9]{12}/
      if (!this.verify_code) {
        uni.showToast({
          title: '请输入核销码',
          icon: 'none',
          duration: 2000,
        })
        return
      }
      if (!ref.test(this.verify_code)) {
        uni.showToast({
          title: '请输入正确的核销码',
          icon: 'none',
          duration: 2000,
        })
        return
      }
      uni.showLoading({
        title: '查询中',
      })
      orderVerific(this.verify_code, 0)
        .then(res => {
          uni.hideLoading()
          this.orderInfo = res.data
          this.iShidden = false
          uni.showToast({
            title: res.msg,
            icon: 'success',
            duration: 2000,
          })
        })
        .catch(error => {
          uni.hideLoading()
          uni.showToast({
            title: error.msg || error.response.data.msg || error.response.data.message,
            icon: 'none',
            duration: 2000,
          })
        })
    },
    openQRCode: function() {
      let that = this
      // 这里需要调用扫码功能
      uni.scanCode({
        success: res => {
          var result = res.result
          if (result) {
            that.verify_code = res.result
            that.storeCancellation()
          } else {
            uni.showToast({
              title: '没有扫描到什么！',
              icon: 'none',
              duration: 2000,
            })
          }
        },
      })
    },
  },
}
</script>

<style scoped lang="less">
.OrderCancellation .header {
  width: 100%;
  height: 3 * 100rpx;
  background-size: 100% 100%;

  image {
    width: 100%;
    height: 3 * 100rpx;
  }
}

.OrderCancellation .whiteBg {
  width: 6.9 * 100rpx;
  background-color: #fff;
  margin: -0.93 * 100rpx auto 0 auto;
  padding-top: 0.8 * 100rpx;
  padding-bottom: 30rpx;
  z-index: 20;
  position: relative;
  border-radius: 0.06 * 100rpx 0.06 * 100rpx 0 0;
}

.OrderCancellation .whiteBg .input {
  width: 5.8 * 100rpx;
  margin: 0 auto;
  border-bottom: 0.01 * 100rpx solid #eee;
}

.OrderCancellation .whiteBg .input input {
  padding-bottom: 0.25 * 100rpx;
  font-size: 0.6 * 100rpx;
  height: auto;
  color: #282828;
  width: 100%;
  text-align: center;
}

.OrderCancellation .whiteBg .bnt {
  font-size: 0.32 * 100rpx;
  color: #fff;
  width: 5.8 * 100rpx;
  height: 0.86 * 100rpx;
  border-radius: 0.43 * 100rpx;
  background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%);
  background-image: -webkit-linear-gradient(to right, #eb3729 0%, #eb3729 100%);
  background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%);
  text-align: center;
  line-height: 0.86 * 100rpx;
  margin: 0.55 * 100rpx auto 0 auto;
}

.OrderCancellation .scan {
  width: 3 * 100rpx;
  height: 3 * 100rpx;
  margin: 1.1 * 100rpx auto 0 auto;
}

.OrderCancellation .scan image {
  width: 100%;
  height: 100%;
  display: block;
}
</style>
